package com.sc.nft.feign;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sc.nft.dto.IdRequest;
import com.sc.nft.req.activity.ThemeActivityGoodsReq;
import com.sc.nft.req.activity.ThemeActivityPageReq;
import com.sc.nft.req.activity.ThemeActivityReq;
import com.sc.nft.req.redeemcard.UserRedeemCardPageReq;
import com.sc.nft.req.redeemcard.UserRedeemCardReceiveReq;
import com.sc.nft.req.redeemcard.UserRedeemCardRecordReq;
import com.sc.nft.sup.PageRequest;
import com.sc.nft.sup.PageResult;
import com.sc.nft.sup.Result;
import com.sc.nft.vo.activity.*;
import com.sc.nft.vo.redeemcard.UserRedeemCardDetailsVO;
import com.sc.nft.vo.redeemcard.UserRedeemCardPageVO;
import com.sc.nft.vo.redeemcard.UserRedeemCardRecordsPageVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;


/**
 * @author JYT
 * @create 2024/4/27 11:29
 */
@FeignClient(name = "meta-mall-mini-app", path = "/wxMiniMall/user/redeemCard")
public interface WxMiniUserRedeemCardClient {

    /**
     * 用户兑换卡兑换
     * @param request
     * @return
     */
    @PostMapping(value = "/receive", produces = MediaType.APPLICATION_JSON_VALUE)
    Result receive(UserRedeemCardReceiveReq request);

    /**
     * 用户兑换卡列表
     * @param request
     * @return
     */
    @PostMapping(value = "/userPage", produces = MediaType.APPLICATION_JSON_VALUE)
    PageResult<UserRedeemCardPageVO> userPage(UserRedeemCardPageReq request);


    /**
     * 用户兑换卡详情
     * @param request
     * @return
     */
    @PostMapping(value = "/details", produces = MediaType.APPLICATION_JSON_VALUE)
    Result<UserRedeemCardDetailsVO> details(IdRequest request);


    /**
     * 用户兑换卡数量
     * @return
     */
    @PostMapping(value = "/countNum", produces = MediaType.APPLICATION_JSON_VALUE)
    Integer countNum(IdRequest idRequest);

    @PostMapping(value = "/records", produces = MediaType.APPLICATION_JSON_VALUE)
    PageResult<UserRedeemCardRecordsPageVO> records(UserRedeemCardRecordReq request);
}
